#include"dao_gsl_fft.h"

#ifdef __cplusplus
extern "C"{
#endif

/*  gsl_fft_complex.h */


static void dao_gsl_fft_complex_wavetable_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_complex_wavetable_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_complex_wavetable_gsl_fft_complex_wavetable( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_complex_wavetable_Meths[] = 
{
  { dao_gsl_fft_complex_wavetable_GETF_n, ".n( self : gsl_fft_complex_wavetable )=>int" },
  { dao_gsl_fft_complex_wavetable_SETF_n, ".n=( self : gsl_fft_complex_wavetable, n : int )" },
  { dao_gsl_fft_complex_wavetable_GETF_nf, ".nf( self : gsl_fft_complex_wavetable )=>int" },
  { dao_gsl_fft_complex_wavetable_SETF_nf, ".nf=( self : gsl_fft_complex_wavetable, nf : int )" },
  { dao_gsl_fft_complex_wavetable_GETF_factor, ".factor( self : gsl_fft_complex_wavetable )=>array<int>" },
  { dao_gsl_fft_complex_wavetable_SETF_factor, ".factor=( self : gsl_fft_complex_wavetable, factor : array<int> )" },
  { dao_gsl_fft_complex_wavetable_GETI_factor, "[]( self : gsl_fft_complex_wavetable, i : int )=>int" },
  { dao_gsl_fft_complex_wavetable_SETI_factor, "[]=( self : gsl_fft_complex_wavetable, i : int, value : int )" },
  { dao_gsl_fft_complex_wavetable_GETF_trig, ".trig( self : gsl_fft_complex_wavetable )=>gsl_complex" },
  { dao_gsl_fft_complex_wavetable_gsl_fft_complex_wavetable, "gsl_fft_complex_wavetable(  )=>gsl_fft_complex_wavetable" },
  { NULL, NULL }
};
static void Dao_gsl_fft_complex_wavetable_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_complex_wavetable_Typer = 
{ "gsl_fft_complex_wavetable", NULL, 
  dao_gsl_fft_complex_wavetable_Nums,
  dao_gsl_fft_complex_wavetable_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_complex_wavetable_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_complex_wavetable_Typer = & gsl_fft_complex_wavetable_Typer;
static void dao_gsl_fft_complex_wavetable_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable *self = (gsl_fft_complex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_complex_wavetable_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable *self = (gsl_fft_complex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_complex_wavetable_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable *self = (gsl_fft_complex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_Typer);
  DaoContext_PutInteger( _ctx, (int) self->nf );
}
static void dao_gsl_fft_complex_wavetable_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable *self = (gsl_fft_complex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_Typer);
  self->nf = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_complex_wavetable_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable *self = (gsl_fft_complex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_Typer);
  DaoContext_PutArrayInteger( _ctx, (int*) self->factor, 64 );
}
static void dao_gsl_fft_complex_wavetable_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable *self = (gsl_fft_complex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_Typer);
  int size = DaoArray_Size( _p[1]->v.array );
  if( size > 64 ) size = 64;
  memmove( self->factor, DaoArray_ToInt( _p[1]->v.array ), size*sizeof(int) );
}
static void dao_gsl_fft_complex_wavetable_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable *self = (gsl_fft_complex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_Typer);
  DaoContext_PutInteger( _ctx, (int) self->factor[_p[1]->v.i] );
}
static void dao_gsl_fft_complex_wavetable_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable *self = (gsl_fft_complex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_Typer);
  if( _p[1]->v.i < 0 || _p[1]->v.i >= 64 ) return;
  self->factor[_p[1]->v.i] = _p[2]->v.i;
}
static void dao_gsl_fft_complex_wavetable_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable *self = (gsl_fft_complex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_Typer);
  DaoContext_WrapCData( _ctx, (void*) self->trig, dao_gsl_complex_Typer );
}
static void dao_gsl_fft_complex_wavetable_gsl_fft_complex_wavetable( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_complex_wavetable *self = Dao_gsl_fft_complex_wavetable_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_complex_wavetable_Typer );
}

/*  gsl_fft_complex_float.h */


static void dao_gsl_fft_complex_wavetable_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_float_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_float_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_float_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_float_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_float_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_float_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_wavetable_float_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_complex_wavetable_float_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_complex_wavetable_float_gsl_fft_complex_wavetable_float( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_complex_wavetable_float_Meths[] = 
{
  { dao_gsl_fft_complex_wavetable_float_GETF_n, ".n( self : gsl_fft_complex_wavetable_float )=>int" },
  { dao_gsl_fft_complex_wavetable_float_SETF_n, ".n=( self : gsl_fft_complex_wavetable_float, n : int )" },
  { dao_gsl_fft_complex_wavetable_float_GETF_nf, ".nf( self : gsl_fft_complex_wavetable_float )=>int" },
  { dao_gsl_fft_complex_wavetable_float_SETF_nf, ".nf=( self : gsl_fft_complex_wavetable_float, nf : int )" },
  { dao_gsl_fft_complex_wavetable_float_GETF_factor, ".factor( self : gsl_fft_complex_wavetable_float )=>array<int>" },
  { dao_gsl_fft_complex_wavetable_float_SETF_factor, ".factor=( self : gsl_fft_complex_wavetable_float, factor : array<int> )" },
  { dao_gsl_fft_complex_wavetable_float_GETI_factor, "[]( self : gsl_fft_complex_wavetable_float, i : int )=>int" },
  { dao_gsl_fft_complex_wavetable_float_SETI_factor, "[]=( self : gsl_fft_complex_wavetable_float, i : int, value : int )" },
  { dao_gsl_fft_complex_wavetable_float_GETF_trig, ".trig( self : gsl_fft_complex_wavetable_float )=>gsl_complex_float" },
  { dao_gsl_fft_complex_wavetable_float_gsl_fft_complex_wavetable_float, "gsl_fft_complex_wavetable_float(  )=>gsl_fft_complex_wavetable_float" },
  { NULL, NULL }
};
static void Dao_gsl_fft_complex_wavetable_float_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_complex_wavetable_float_Typer = 
{ "gsl_fft_complex_wavetable_float", NULL, 
  dao_gsl_fft_complex_wavetable_float_Nums,
  dao_gsl_fft_complex_wavetable_float_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_complex_wavetable_float_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_complex_wavetable_float_Typer = & gsl_fft_complex_wavetable_float_Typer;
static void dao_gsl_fft_complex_wavetable_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float *self = (gsl_fft_complex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_complex_wavetable_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float *self = (gsl_fft_complex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_float_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_complex_wavetable_float_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float *self = (gsl_fft_complex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->nf );
}
static void dao_gsl_fft_complex_wavetable_float_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float *self = (gsl_fft_complex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_float_Typer);
  self->nf = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_complex_wavetable_float_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float *self = (gsl_fft_complex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_float_Typer);
  DaoContext_PutArrayInteger( _ctx, (int*) self->factor, 64 );
}
static void dao_gsl_fft_complex_wavetable_float_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float *self = (gsl_fft_complex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_float_Typer);
  int size = DaoArray_Size( _p[1]->v.array );
  if( size > 64 ) size = 64;
  memmove( self->factor, DaoArray_ToInt( _p[1]->v.array ), size*sizeof(int) );
}
static void dao_gsl_fft_complex_wavetable_float_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float *self = (gsl_fft_complex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->factor[_p[1]->v.i] );
}
static void dao_gsl_fft_complex_wavetable_float_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float *self = (gsl_fft_complex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_float_Typer);
  if( _p[1]->v.i < 0 || _p[1]->v.i >= 64 ) return;
  self->factor[_p[1]->v.i] = _p[2]->v.i;
}
static void dao_gsl_fft_complex_wavetable_float_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float *self = (gsl_fft_complex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_wavetable_float_Typer);
  DaoContext_WrapCData( _ctx, (void*) self->trig, dao_gsl_complex_float_Typer );
}
static void dao_gsl_fft_complex_wavetable_float_gsl_fft_complex_wavetable_float( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_complex_wavetable_float *self = Dao_gsl_fft_complex_wavetable_float_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_complex_wavetable_float_Typer );
}

/*  gsl_fft_complex.h */


static void dao_gsl_fft_complex_workspace_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_workspace_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_workspace_GETF_scratch( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_complex_workspace_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_complex_workspace_gsl_fft_complex_workspace( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_complex_workspace_Meths[] = 
{
  { dao_gsl_fft_complex_workspace_GETF_n, ".n( self : gsl_fft_complex_workspace )=>int" },
  { dao_gsl_fft_complex_workspace_SETF_n, ".n=( self : gsl_fft_complex_workspace, n : int )" },
  { dao_gsl_fft_complex_workspace_GETF_scratch, ".scratch( self : gsl_fft_complex_workspace )=>double" },
  { dao_gsl_fft_complex_workspace_gsl_fft_complex_workspace, "gsl_fft_complex_workspace(  )=>gsl_fft_complex_workspace" },
  { NULL, NULL }
};
static void Dao_gsl_fft_complex_workspace_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_complex_workspace_Typer = 
{ "gsl_fft_complex_workspace", NULL, 
  dao_gsl_fft_complex_workspace_Nums,
  dao_gsl_fft_complex_workspace_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_complex_workspace_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_complex_workspace_Typer = & gsl_fft_complex_workspace_Typer;
static void dao_gsl_fft_complex_workspace_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_workspace *self = (gsl_fft_complex_workspace*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_workspace_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_complex_workspace_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_workspace *self = (gsl_fft_complex_workspace*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_workspace_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_complex_workspace_GETF_scratch( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_workspace *self = (gsl_fft_complex_workspace*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_workspace_Typer);
  DaoContext_PutArrayDouble( _ctx, (double*) self->scratch, 0 );
}
static void dao_gsl_fft_complex_workspace_gsl_fft_complex_workspace( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_complex_workspace *self = Dao_gsl_fft_complex_workspace_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_complex_workspace_Typer );
}

/*  gsl_fft_complex_float.h */


static void dao_gsl_fft_complex_workspace_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_workspace_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_complex_workspace_float_GETF_scratch( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_complex_workspace_float_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_complex_workspace_float_gsl_fft_complex_workspace_float( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_complex_workspace_float_Meths[] = 
{
  { dao_gsl_fft_complex_workspace_float_GETF_n, ".n( self : gsl_fft_complex_workspace_float )=>int" },
  { dao_gsl_fft_complex_workspace_float_SETF_n, ".n=( self : gsl_fft_complex_workspace_float, n : int )" },
  { dao_gsl_fft_complex_workspace_float_GETF_scratch, ".scratch( self : gsl_fft_complex_workspace_float )=>float" },
  { dao_gsl_fft_complex_workspace_float_gsl_fft_complex_workspace_float, "gsl_fft_complex_workspace_float(  )=>gsl_fft_complex_workspace_float" },
  { NULL, NULL }
};
static void Dao_gsl_fft_complex_workspace_float_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_complex_workspace_float_Typer = 
{ "gsl_fft_complex_workspace_float", NULL, 
  dao_gsl_fft_complex_workspace_float_Nums,
  dao_gsl_fft_complex_workspace_float_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_complex_workspace_float_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_complex_workspace_float_Typer = & gsl_fft_complex_workspace_float_Typer;
static void dao_gsl_fft_complex_workspace_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_workspace_float *self = (gsl_fft_complex_workspace_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_workspace_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_complex_workspace_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_workspace_float *self = (gsl_fft_complex_workspace_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_workspace_float_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_complex_workspace_float_GETF_scratch( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_workspace_float *self = (gsl_fft_complex_workspace_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_complex_workspace_float_Typer);
  DaoContext_PutArrayFloat( _ctx, (float*) self->scratch, 0 );
}
static void dao_gsl_fft_complex_workspace_float_gsl_fft_complex_workspace_float( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_complex_workspace_float *self = Dao_gsl_fft_complex_workspace_float_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_complex_workspace_float_Typer );
}

/*  gsl_fft_halfcomplex.h */


static void dao_gsl_fft_halfcomplex_wavetable_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_halfcomplex_wavetable_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_halfcomplex_wavetable_gsl_fft_halfcomplex_wavetable( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_halfcomplex_wavetable_Meths[] = 
{
  { dao_gsl_fft_halfcomplex_wavetable_GETF_n, ".n( self : gsl_fft_halfcomplex_wavetable )=>int" },
  { dao_gsl_fft_halfcomplex_wavetable_SETF_n, ".n=( self : gsl_fft_halfcomplex_wavetable, n : int )" },
  { dao_gsl_fft_halfcomplex_wavetable_GETF_nf, ".nf( self : gsl_fft_halfcomplex_wavetable )=>int" },
  { dao_gsl_fft_halfcomplex_wavetable_SETF_nf, ".nf=( self : gsl_fft_halfcomplex_wavetable, nf : int )" },
  { dao_gsl_fft_halfcomplex_wavetable_GETF_factor, ".factor( self : gsl_fft_halfcomplex_wavetable )=>array<int>" },
  { dao_gsl_fft_halfcomplex_wavetable_SETF_factor, ".factor=( self : gsl_fft_halfcomplex_wavetable, factor : array<int> )" },
  { dao_gsl_fft_halfcomplex_wavetable_GETI_factor, "[]( self : gsl_fft_halfcomplex_wavetable, i : int )=>int" },
  { dao_gsl_fft_halfcomplex_wavetable_SETI_factor, "[]=( self : gsl_fft_halfcomplex_wavetable, i : int, value : int )" },
  { dao_gsl_fft_halfcomplex_wavetable_GETF_trig, ".trig( self : gsl_fft_halfcomplex_wavetable )=>gsl_complex" },
  { dao_gsl_fft_halfcomplex_wavetable_gsl_fft_halfcomplex_wavetable, "gsl_fft_halfcomplex_wavetable(  )=>gsl_fft_halfcomplex_wavetable" },
  { NULL, NULL }
};
static void Dao_gsl_fft_halfcomplex_wavetable_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_halfcomplex_wavetable_Typer = 
{ "gsl_fft_halfcomplex_wavetable", NULL, 
  dao_gsl_fft_halfcomplex_wavetable_Nums,
  dao_gsl_fft_halfcomplex_wavetable_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_halfcomplex_wavetable_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_halfcomplex_wavetable_Typer = & gsl_fft_halfcomplex_wavetable_Typer;
static void dao_gsl_fft_halfcomplex_wavetable_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable *self = (gsl_fft_halfcomplex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_halfcomplex_wavetable_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable *self = (gsl_fft_halfcomplex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_halfcomplex_wavetable_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable *self = (gsl_fft_halfcomplex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_Typer);
  DaoContext_PutInteger( _ctx, (int) self->nf );
}
static void dao_gsl_fft_halfcomplex_wavetable_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable *self = (gsl_fft_halfcomplex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_Typer);
  self->nf = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_halfcomplex_wavetable_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable *self = (gsl_fft_halfcomplex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_Typer);
  DaoContext_PutArrayInteger( _ctx, (int*) self->factor, 64 );
}
static void dao_gsl_fft_halfcomplex_wavetable_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable *self = (gsl_fft_halfcomplex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_Typer);
  int size = DaoArray_Size( _p[1]->v.array );
  if( size > 64 ) size = 64;
  memmove( self->factor, DaoArray_ToInt( _p[1]->v.array ), size*sizeof(int) );
}
static void dao_gsl_fft_halfcomplex_wavetable_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable *self = (gsl_fft_halfcomplex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_Typer);
  DaoContext_PutInteger( _ctx, (int) self->factor[_p[1]->v.i] );
}
static void dao_gsl_fft_halfcomplex_wavetable_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable *self = (gsl_fft_halfcomplex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_Typer);
  if( _p[1]->v.i < 0 || _p[1]->v.i >= 64 ) return;
  self->factor[_p[1]->v.i] = _p[2]->v.i;
}
static void dao_gsl_fft_halfcomplex_wavetable_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable *self = (gsl_fft_halfcomplex_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_Typer);
  DaoContext_WrapCData( _ctx, (void*) self->trig, dao_gsl_complex_Typer );
}
static void dao_gsl_fft_halfcomplex_wavetable_gsl_fft_halfcomplex_wavetable( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_halfcomplex_wavetable *self = Dao_gsl_fft_halfcomplex_wavetable_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_halfcomplex_wavetable_Typer );
}

/*  gsl_fft_halfcomplex_float.h */


static void dao_gsl_fft_halfcomplex_wavetable_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_float_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_float_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_float_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_float_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_float_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_float_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_halfcomplex_wavetable_float_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_halfcomplex_wavetable_float_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_halfcomplex_wavetable_float_gsl_fft_halfcomplex_wavetable_float( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_halfcomplex_wavetable_float_Meths[] = 
{
  { dao_gsl_fft_halfcomplex_wavetable_float_GETF_n, ".n( self : gsl_fft_halfcomplex_wavetable_float )=>int" },
  { dao_gsl_fft_halfcomplex_wavetable_float_SETF_n, ".n=( self : gsl_fft_halfcomplex_wavetable_float, n : int )" },
  { dao_gsl_fft_halfcomplex_wavetable_float_GETF_nf, ".nf( self : gsl_fft_halfcomplex_wavetable_float )=>int" },
  { dao_gsl_fft_halfcomplex_wavetable_float_SETF_nf, ".nf=( self : gsl_fft_halfcomplex_wavetable_float, nf : int )" },
  { dao_gsl_fft_halfcomplex_wavetable_float_GETF_factor, ".factor( self : gsl_fft_halfcomplex_wavetable_float )=>array<int>" },
  { dao_gsl_fft_halfcomplex_wavetable_float_SETF_factor, ".factor=( self : gsl_fft_halfcomplex_wavetable_float, factor : array<int> )" },
  { dao_gsl_fft_halfcomplex_wavetable_float_GETI_factor, "[]( self : gsl_fft_halfcomplex_wavetable_float, i : int )=>int" },
  { dao_gsl_fft_halfcomplex_wavetable_float_SETI_factor, "[]=( self : gsl_fft_halfcomplex_wavetable_float, i : int, value : int )" },
  { dao_gsl_fft_halfcomplex_wavetable_float_GETF_trig, ".trig( self : gsl_fft_halfcomplex_wavetable_float )=>gsl_complex_float" },
  { dao_gsl_fft_halfcomplex_wavetable_float_gsl_fft_halfcomplex_wavetable_float, "gsl_fft_halfcomplex_wavetable_float(  )=>gsl_fft_halfcomplex_wavetable_float" },
  { NULL, NULL }
};
static void Dao_gsl_fft_halfcomplex_wavetable_float_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_halfcomplex_wavetable_float_Typer = 
{ "gsl_fft_halfcomplex_wavetable_float", NULL, 
  dao_gsl_fft_halfcomplex_wavetable_float_Nums,
  dao_gsl_fft_halfcomplex_wavetable_float_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_halfcomplex_wavetable_float_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_halfcomplex_wavetable_float_Typer = & gsl_fft_halfcomplex_wavetable_float_Typer;
static void dao_gsl_fft_halfcomplex_wavetable_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float *self = (gsl_fft_halfcomplex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_halfcomplex_wavetable_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float *self = (gsl_fft_halfcomplex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_float_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_halfcomplex_wavetable_float_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float *self = (gsl_fft_halfcomplex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->nf );
}
static void dao_gsl_fft_halfcomplex_wavetable_float_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float *self = (gsl_fft_halfcomplex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_float_Typer);
  self->nf = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_halfcomplex_wavetable_float_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float *self = (gsl_fft_halfcomplex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_float_Typer);
  DaoContext_PutArrayInteger( _ctx, (int*) self->factor, 64 );
}
static void dao_gsl_fft_halfcomplex_wavetable_float_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float *self = (gsl_fft_halfcomplex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_float_Typer);
  int size = DaoArray_Size( _p[1]->v.array );
  if( size > 64 ) size = 64;
  memmove( self->factor, DaoArray_ToInt( _p[1]->v.array ), size*sizeof(int) );
}
static void dao_gsl_fft_halfcomplex_wavetable_float_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float *self = (gsl_fft_halfcomplex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->factor[_p[1]->v.i] );
}
static void dao_gsl_fft_halfcomplex_wavetable_float_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float *self = (gsl_fft_halfcomplex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_float_Typer);
  if( _p[1]->v.i < 0 || _p[1]->v.i >= 64 ) return;
  self->factor[_p[1]->v.i] = _p[2]->v.i;
}
static void dao_gsl_fft_halfcomplex_wavetable_float_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float *self = (gsl_fft_halfcomplex_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_halfcomplex_wavetable_float_Typer);
  DaoContext_WrapCData( _ctx, (void*) self->trig, dao_gsl_complex_float_Typer );
}
static void dao_gsl_fft_halfcomplex_wavetable_float_gsl_fft_halfcomplex_wavetable_float( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_halfcomplex_wavetable_float *self = Dao_gsl_fft_halfcomplex_wavetable_float_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_halfcomplex_wavetable_float_Typer );
}

/*  gsl_fft_real.h */


static void dao_gsl_fft_real_wavetable_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_real_wavetable_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_real_wavetable_gsl_fft_real_wavetable( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_real_wavetable_Meths[] = 
{
  { dao_gsl_fft_real_wavetable_GETF_n, ".n( self : gsl_fft_real_wavetable )=>int" },
  { dao_gsl_fft_real_wavetable_SETF_n, ".n=( self : gsl_fft_real_wavetable, n : int )" },
  { dao_gsl_fft_real_wavetable_GETF_nf, ".nf( self : gsl_fft_real_wavetable )=>int" },
  { dao_gsl_fft_real_wavetable_SETF_nf, ".nf=( self : gsl_fft_real_wavetable, nf : int )" },
  { dao_gsl_fft_real_wavetable_GETF_factor, ".factor( self : gsl_fft_real_wavetable )=>array<int>" },
  { dao_gsl_fft_real_wavetable_SETF_factor, ".factor=( self : gsl_fft_real_wavetable, factor : array<int> )" },
  { dao_gsl_fft_real_wavetable_GETI_factor, "[]( self : gsl_fft_real_wavetable, i : int )=>int" },
  { dao_gsl_fft_real_wavetable_SETI_factor, "[]=( self : gsl_fft_real_wavetable, i : int, value : int )" },
  { dao_gsl_fft_real_wavetable_GETF_trig, ".trig( self : gsl_fft_real_wavetable )=>gsl_complex" },
  { dao_gsl_fft_real_wavetable_gsl_fft_real_wavetable, "gsl_fft_real_wavetable(  )=>gsl_fft_real_wavetable" },
  { NULL, NULL }
};
static void Dao_gsl_fft_real_wavetable_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_real_wavetable_Typer = 
{ "gsl_fft_real_wavetable", NULL, 
  dao_gsl_fft_real_wavetable_Nums,
  dao_gsl_fft_real_wavetable_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_real_wavetable_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_real_wavetable_Typer = & gsl_fft_real_wavetable_Typer;
static void dao_gsl_fft_real_wavetable_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable *self = (gsl_fft_real_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_real_wavetable_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable *self = (gsl_fft_real_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_real_wavetable_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable *self = (gsl_fft_real_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_Typer);
  DaoContext_PutInteger( _ctx, (int) self->nf );
}
static void dao_gsl_fft_real_wavetable_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable *self = (gsl_fft_real_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_Typer);
  self->nf = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_real_wavetable_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable *self = (gsl_fft_real_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_Typer);
  DaoContext_PutArrayInteger( _ctx, (int*) self->factor, 64 );
}
static void dao_gsl_fft_real_wavetable_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable *self = (gsl_fft_real_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_Typer);
  int size = DaoArray_Size( _p[1]->v.array );
  if( size > 64 ) size = 64;
  memmove( self->factor, DaoArray_ToInt( _p[1]->v.array ), size*sizeof(int) );
}
static void dao_gsl_fft_real_wavetable_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable *self = (gsl_fft_real_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_Typer);
  DaoContext_PutInteger( _ctx, (int) self->factor[_p[1]->v.i] );
}
static void dao_gsl_fft_real_wavetable_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable *self = (gsl_fft_real_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_Typer);
  if( _p[1]->v.i < 0 || _p[1]->v.i >= 64 ) return;
  self->factor[_p[1]->v.i] = _p[2]->v.i;
}
static void dao_gsl_fft_real_wavetable_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable *self = (gsl_fft_real_wavetable*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_Typer);
  DaoContext_WrapCData( _ctx, (void*) self->trig, dao_gsl_complex_Typer );
}
static void dao_gsl_fft_real_wavetable_gsl_fft_real_wavetable( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_real_wavetable *self = Dao_gsl_fft_real_wavetable_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_real_wavetable_Typer );
}

/*  gsl_fft_real_float.h */


static void dao_gsl_fft_real_wavetable_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_float_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_float_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_float_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_float_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_float_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_float_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_wavetable_float_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_real_wavetable_float_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_real_wavetable_float_gsl_fft_real_wavetable_float( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_real_wavetable_float_Meths[] = 
{
  { dao_gsl_fft_real_wavetable_float_GETF_n, ".n( self : gsl_fft_real_wavetable_float )=>int" },
  { dao_gsl_fft_real_wavetable_float_SETF_n, ".n=( self : gsl_fft_real_wavetable_float, n : int )" },
  { dao_gsl_fft_real_wavetable_float_GETF_nf, ".nf( self : gsl_fft_real_wavetable_float )=>int" },
  { dao_gsl_fft_real_wavetable_float_SETF_nf, ".nf=( self : gsl_fft_real_wavetable_float, nf : int )" },
  { dao_gsl_fft_real_wavetable_float_GETF_factor, ".factor( self : gsl_fft_real_wavetable_float )=>array<int>" },
  { dao_gsl_fft_real_wavetable_float_SETF_factor, ".factor=( self : gsl_fft_real_wavetable_float, factor : array<int> )" },
  { dao_gsl_fft_real_wavetable_float_GETI_factor, "[]( self : gsl_fft_real_wavetable_float, i : int )=>int" },
  { dao_gsl_fft_real_wavetable_float_SETI_factor, "[]=( self : gsl_fft_real_wavetable_float, i : int, value : int )" },
  { dao_gsl_fft_real_wavetable_float_GETF_trig, ".trig( self : gsl_fft_real_wavetable_float )=>gsl_complex_float" },
  { dao_gsl_fft_real_wavetable_float_gsl_fft_real_wavetable_float, "gsl_fft_real_wavetable_float(  )=>gsl_fft_real_wavetable_float" },
  { NULL, NULL }
};
static void Dao_gsl_fft_real_wavetable_float_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_real_wavetable_float_Typer = 
{ "gsl_fft_real_wavetable_float", NULL, 
  dao_gsl_fft_real_wavetable_float_Nums,
  dao_gsl_fft_real_wavetable_float_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_real_wavetable_float_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_real_wavetable_float_Typer = & gsl_fft_real_wavetable_float_Typer;
static void dao_gsl_fft_real_wavetable_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float *self = (gsl_fft_real_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_real_wavetable_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float *self = (gsl_fft_real_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_float_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_real_wavetable_float_GETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float *self = (gsl_fft_real_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->nf );
}
static void dao_gsl_fft_real_wavetable_float_SETF_nf( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float *self = (gsl_fft_real_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_float_Typer);
  self->nf = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_real_wavetable_float_GETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float *self = (gsl_fft_real_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_float_Typer);
  DaoContext_PutArrayInteger( _ctx, (int*) self->factor, 64 );
}
static void dao_gsl_fft_real_wavetable_float_SETF_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float *self = (gsl_fft_real_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_float_Typer);
  int size = DaoArray_Size( _p[1]->v.array );
  if( size > 64 ) size = 64;
  memmove( self->factor, DaoArray_ToInt( _p[1]->v.array ), size*sizeof(int) );
}
static void dao_gsl_fft_real_wavetable_float_GETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float *self = (gsl_fft_real_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->factor[_p[1]->v.i] );
}
static void dao_gsl_fft_real_wavetable_float_SETI_factor( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float *self = (gsl_fft_real_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_float_Typer);
  if( _p[1]->v.i < 0 || _p[1]->v.i >= 64 ) return;
  self->factor[_p[1]->v.i] = _p[2]->v.i;
}
static void dao_gsl_fft_real_wavetable_float_GETF_trig( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float *self = (gsl_fft_real_wavetable_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_wavetable_float_Typer);
  DaoContext_WrapCData( _ctx, (void*) self->trig, dao_gsl_complex_float_Typer );
}
static void dao_gsl_fft_real_wavetable_float_gsl_fft_real_wavetable_float( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_real_wavetable_float *self = Dao_gsl_fft_real_wavetable_float_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_real_wavetable_float_Typer );
}

/*  gsl_fft_real.h */


static void dao_gsl_fft_real_workspace_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_workspace_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_workspace_GETF_scratch( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_real_workspace_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_real_workspace_gsl_fft_real_workspace( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_real_workspace_Meths[] = 
{
  { dao_gsl_fft_real_workspace_GETF_n, ".n( self : gsl_fft_real_workspace )=>int" },
  { dao_gsl_fft_real_workspace_SETF_n, ".n=( self : gsl_fft_real_workspace, n : int )" },
  { dao_gsl_fft_real_workspace_GETF_scratch, ".scratch( self : gsl_fft_real_workspace )=>double" },
  { dao_gsl_fft_real_workspace_gsl_fft_real_workspace, "gsl_fft_real_workspace(  )=>gsl_fft_real_workspace" },
  { NULL, NULL }
};
static void Dao_gsl_fft_real_workspace_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_real_workspace_Typer = 
{ "gsl_fft_real_workspace", NULL, 
  dao_gsl_fft_real_workspace_Nums,
  dao_gsl_fft_real_workspace_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_real_workspace_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_real_workspace_Typer = & gsl_fft_real_workspace_Typer;
static void dao_gsl_fft_real_workspace_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_workspace *self = (gsl_fft_real_workspace*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_workspace_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_real_workspace_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_workspace *self = (gsl_fft_real_workspace*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_workspace_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_real_workspace_GETF_scratch( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_workspace *self = (gsl_fft_real_workspace*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_workspace_Typer);
  DaoContext_PutArrayDouble( _ctx, (double*) self->scratch, 0 );
}
static void dao_gsl_fft_real_workspace_gsl_fft_real_workspace( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_real_workspace *self = Dao_gsl_fft_real_workspace_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_real_workspace_Typer );
}

/*  gsl_fft_real_float.h */


static void dao_gsl_fft_real_workspace_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_workspace_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n );
static void dao_gsl_fft_real_workspace_float_GETF_scratch( DaoContext *_ctx, DValue *_p[], int _n );
static DaoNumItem dao_gsl_fft_real_workspace_float_Nums[] =
{
  { NULL, 0, 0 }
};
static void dao_gsl_fft_real_workspace_float_gsl_fft_real_workspace_float( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_gsl_fft_real_workspace_float_Meths[] = 
{
  { dao_gsl_fft_real_workspace_float_GETF_n, ".n( self : gsl_fft_real_workspace_float )=>int" },
  { dao_gsl_fft_real_workspace_float_SETF_n, ".n=( self : gsl_fft_real_workspace_float, n : int )" },
  { dao_gsl_fft_real_workspace_float_GETF_scratch, ".scratch( self : gsl_fft_real_workspace_float )=>float" },
  { dao_gsl_fft_real_workspace_float_gsl_fft_real_workspace_float, "gsl_fft_real_workspace_float(  )=>gsl_fft_real_workspace_float" },
  { NULL, NULL }
};
static void Dao_gsl_fft_real_workspace_float_Delete( void *self )
{
	free( self );
}

static DaoTypeBase gsl_fft_real_workspace_float_Typer = 
{ "gsl_fft_real_workspace_float", NULL, 
  dao_gsl_fft_real_workspace_float_Nums,
  dao_gsl_fft_real_workspace_float_Meths, 
  { 0 },
  { 0 },
  Dao_gsl_fft_real_workspace_float_Delete,
  NULL
};
DaoTypeBase DAO_DLL_GSL_FFT *dao_gsl_fft_real_workspace_float_Typer = & gsl_fft_real_workspace_float_Typer;
static void dao_gsl_fft_real_workspace_float_GETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_workspace_float *self = (gsl_fft_real_workspace_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_workspace_float_Typer);
  DaoContext_PutInteger( _ctx, (int) self->n );
}
static void dao_gsl_fft_real_workspace_float_SETF_n( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_workspace_float *self = (gsl_fft_real_workspace_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_workspace_float_Typer);
  self->n = (size_t) _p[1]->v.i;
}
static void dao_gsl_fft_real_workspace_float_GETF_scratch( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_workspace_float *self = (gsl_fft_real_workspace_float*)DaoCData_CastData(_p[0]->v.cdata,dao_gsl_fft_real_workspace_float_Typer);
  DaoContext_PutArrayFloat( _ctx, (float*) self->scratch, 0 );
}
static void dao_gsl_fft_real_workspace_float_gsl_fft_real_workspace_float( DaoContext *_ctx, DValue *_p[], int _n )
{
	gsl_fft_real_workspace_float *self = Dao_gsl_fft_real_workspace_float_New();
	DaoContext_PutCData( _ctx, self, dao_gsl_fft_real_workspace_float_Typer );
}

#ifdef __cplusplus
}
#endif

